package com.probox.common.entity.domain.wechat.broadcast;

import java.util.Date;
import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import com.baomidou.mybatisplus.annotation.*;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.probox.common.core.annotation.Excel;

/**
 * 直播间商品数据对象 wechat_broadcast_product
 *
 * @author usoft
 * @date 2021-07-26
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("wechat_broadcast_product")
@ApiModel(description = "直播间商品数据")
public class WechatBroadcastProduct implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    //默认主键自增
    @TableId(value = "ID", type = IdType.AUTO)
    private Long id;

    /**
     * 平台ID
     */
    @Excel(name = "平台ID")
    @ApiModelProperty(value = "平台ID")
    private Long platformUid;

    /**
     * 直播间商品ID
     */
    @Excel(name = "直播间商品ID")
    @ApiModelProperty(value = "直播间商品ID")
    private Long goodsId;

    /**
     * 商品ID
     */
    @Excel(name = "商品ID")
    @ApiModelProperty(value = "商品ID")
    private String productId;

    /**
     * 商品名称
     */
    @Excel(name = "商品名称")
    @ApiModelProperty(value = "商品名称")
    private String name;

    /**
     * 填入mediaID（mediaID获取后，三天内有效）；图片mediaID的获取，请参考以下文档： https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/New_temporary_materials.html；图片规则：图片尺寸最大300像素*300像素；
     */
    @Excel(name = "填入mediaID", readConverterExp = "m=ediaID获取后，三天内有效")
    @ApiModelProperty(value = "填入mediaID")
    private String coverImgUrl;

    /**
     * 价格类型，1：一口价（只需要传入price，price2不传） 2：价格区间（price字段为左边界，price2字段为右边界，price和price2必传） 3：显示折扣价（price字段为原价，price2字段为现价， price和price2必传）
     */
    @Excel(name = "价格类型，1：一口价", readConverterExp = "只=需要传入price，price2不传")
    @ApiModelProperty(value = "价格类型，1：一口价")
    private Integer priceType;

    /**
     * 数字，最多保留两位小数，单位元
     */
    @Excel(name = "数字，最多保留两位小数，单位元")
    @ApiModelProperty(value = "数字，最多保留两位小数，单位元")
    private Double price;

    /**
     * 数字，最多保留两位小数，单位元
     */
    @Excel(name = "数字，最多保留两位小数，单位元")
    @ApiModelProperty(value = "数字，最多保留两位小数，单位元")
    private Double price2;

    /**
     * 商品详情页的小程序路径，路径参数存在 url 的，该参数的值需要进行 encode 处理再填入
     */
    @Excel(name = "商品详情页的小程序路径，路径参数存在 url 的，该参数的值需要进行 encode 处理再填入")
    @ApiModelProperty(value = "商品详情页的小程序路径，路径参数存在 url 的，该参数的值需要进行 encode 处理再填入")
    private String url;

    /**
     * 当商品为第三方小程序的商品则填写为对应第三方小程序的appid，自身小程序商品则为''
     */
    @Excel(name = "当商品为第三方小程序的商品则填写为对应第三方小程序的appid，自身小程序商品则为''")
    @ApiModelProperty(value = "当商品为第三方小程序的商品则填写为对应第三方小程序的appid，自身小程序商品则为''")
    private String thirdPartyAppid;

    /**
     * 审核单ID
     */
    @Excel(name = "审核单ID")
    @ApiModelProperty(value = "审核单ID")
    private Long auditId;

    /**
     * 上下架 【0：下架，1：上架】
     */
    @Excel(name = "上下架 【0：下架，1：上架】")
    @ApiModelProperty(value = "上下架 【0：下架，1：上架】")
    private String onSale;

    /**
     * 状态 0无效1有效
     */
    @Excel(name = "状态 0无效1有效")
    @ApiModelProperty(value = "状态 0无效1有效")
    private String dataStatus;

    /**
     * 创建人
     */
    @Excel(name = "创建人")
    @ApiModelProperty(value = "创建人")
    private Long createUser;

    /**
     * 创建人账号
     */
    @Excel(name = "创建人账号")
    @ApiModelProperty(value = "创建人账号")
    private String createName;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    /**
     * 修改人
     */
    @Excel(name = "修改人")
    @ApiModelProperty(value = "修改人")
    private Long updateUser;

    /**
     * 修改人账号
     */
    @Excel(name = "修改人账号")
    @ApiModelProperty(value = "修改人账号")
    private String updateName;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "修改时间")
    private Date updateTime;


    /**
     * 缓存商品图片
     */
    @Excel(name = "缓存商品图片")
    @ApiModelProperty(value = "缓存商品图片")
    private String imageUrlStr;

    @Override
    public String toString() {
        return "WechatBroadcastProduct{" +
                "id=" + id +
                ", platformUid=" + platformUid +
                ", goodsId=" + goodsId +
                ", productId='" + productId + '\'' +
                ", name='" + name + '\'' +
                ", coverImgUrl='" + coverImgUrl + '\'' +
                ", priceType=" + priceType +
                ", price=" + price +
                ", price2=" + price2 +
                ", url='" + url + '\'' +
                ", thirdPartyAppid='" + thirdPartyAppid + '\'' +
                ", auditId=" + auditId +
                ", onSale='" + onSale + '\'' +
                ", dataStatus='" + dataStatus + '\'' +
                ", createUser=" + createUser +
                ", createName='" + createName + '\'' +
                ", createTime=" + createTime +
                ", updateUser=" + updateUser +
                ", updateName='" + updateName + '\'' +
                ", updateTime=" + updateTime +
                ", imageUrlStr='" + imageUrlStr + '\'' +
                '}';
    }
}
